import json
import base64
import uuid
import cv2
import requests


def post(url: str, datas: dict):
    return requests.post(url, data=json.dumps(datas))


def save(b64_image: str, output_path: str):
    with open(output_path, "wb") as image_file:
        image_file.write(base64.b64decode(b64_image))


if __name__ == '__main__':
    text = input('请输入提示词:')
    print("构造中,请稍后...")
    txt2img_url = 'http://x.x.x.x:xxxx/sdapi/v1/txt2img'
    response = post(txt2img_url, {'prompt': text})
    filename = str(uuid.uuid1()) + '.png'
    b64 = response.json()['images'][0]
    print("构造成功!")
    print(b64)
    print("转换中...")
    save(b64, filename)
    print("转换完毕!")

    image = cv2.imread(filename)
    cv2.imshow(filename, image)
    cv2.waitKey(0)
